Paradoxical Tumors in Penile Cancer

Summary

The aim of this study is to report the clinicopathologic and outcome features of superficial high-grade and deep low-grade penile squamous cell carcinomas. For this, we used a retrospectively-colleted series of patients with penile cancer, in which we identified 41 cases corresponding to 12 superficial high-grade tumors and 29 deep low-grade tumors. As outcomes we evaluated inguinal lymph node status, presence of tumor relapse, final nodal status, and cancer-specific death. Follow-up ranged from 0.8 to 386.7 months (mean, 152.5 months; median, 157.3 months). Clinicopathologic features were similar between superficial high-grade and deep low-grade tumors, except for a tendendy (Fisher’s exact P = 0.057) of the former to include tumors with a verruciform pattern of growth. A significantly higher proportion of inguinal lymph node metastasis was found in superficial high-grade tumors compared to deep low-grade tumors (80% vs. 20% respectively, Fisher’s exact P = 0.02). No significant differences were found regarding tumor relapse (Fisher’s exact P = 0.52), final nodal status (Mantel-Cox’s P = 0.42), or cancer-related death (Mantel-Cox’s P = 0.52). Our findings suggest that patients with superficial high-grade tumors may be treated differently from patients with deep low-grade tumors, at least to control short-term local disease. Prophylactic inguinal lymphadenectomuy might be indicated in cases of superficial tumors with high-grade histology while in deeply invasive low-grade penile carcinomas a more conservative approach may be considered.

Description of the repository

This repository contains the full statistical analysis of the dataset that was used for the article “Clinicopathologic and Outcome Features of Superficial High-Grade and Deep Low-Grade Squamous Cell Carcinomas of the Penis”. The article is currently under consideration of publication. This repository also contains the following files:

  • The final PDF version of the article, as submitted for consideration of publication
  • The BibTeX file containing all the references cited in the article
  • The R script that was used for analyzing the dataset and write the article
  • The R Markdown file used for this report
  • The figures included in this repository in PNG format

Data were analyzed using R version 3.1.2 “Pumpkin Helmet” (R Foundation for Statistical Computing, Vienna, Austria). Results were written using RMarkDown inside RStudio version 0.99.292, powered by the knitr package version 1.9 by Yihui Xie.

Building the dataset for analysis

First we loaded the full dataset including 333 patiens with invasive penile squamous cell carcinoma.

Data <- read.csv("Article/PenisSCC_333.csv")

The full dataset is available at http://dx.doi.org/10.6084/m9.figshare.1290997, which also contains the dataset’s codebook. We excluded patients who were lost at follow up in Outcome.

Data <- subset(Data, Outcome != "Lost at follow-up")

We then recoded 3 variables, creating new variables cancer-related death (DOD), final nodal status (Final_Nodal), and anatomical location (Anatomical). Positive cases for Final_Nodalwhere those with lymph node metastasis in the groin dissection, local relapse during follow-up, or unfavorable outcome, including alive with disease and death by cancer. We also reordered Subtype.

# Creating a new variable for cancer-related death
Data$DOD <- ifelse(Data$Outcome == "Died of cancer", c("Yes"), c("No"))
Data$DOD <- factor(Data$DOD)
# Creating a new variable for the final nodal status
## Positive cases where those with:
  # Nodal metastasis in lymphadenectomy
  Data$Final_Nodal <- ifelse(Data$Mets == "Yes", c("Positive"), c("Negative"))
  # Local relapse during follow-up
  Data$Final_Nodal[Data$Local == "Yes"] <- "Positive"
  # Unfavorable outcome, including alive with disease and death by cancer
  Data$Final_Nodal[Data$Outcome == "Alive with disease"] <- "Positive"
  Data$Final_Nodal[Data$Outcome == "Died of cancer"] <- "Positive"
  Data$Final_Nodal <- factor(Data$Final_Nodal)
# Creating a new variable for anatomical location
Data$Anatomical[Data$Glans == "Yes" &
  Data$Sulcus == "No" &
  Data$Foreskin == "No"] <- "Glans alone"
Data$Anatomical[Data$Glans == "Yes" &
  Data$Sulcus == "Yes" &
  Data$Foreskin == "No"] <- "Glans + Coronal sulcus"
Data$Anatomical[Data$Glans == "Yes" &
  Data$Sulcus == "Yes" &
  Data$Foreskin == "Yes"] <- "Glans + Coronal sulcus + Foreskin"
Data$Anatomical <- factor(Data$Anatomical,
  levels = c("Glans alone", "Glans + Coronal sulcus",
    "Glans + Coronal sulcus + Foreskin"))
# Releveling variables
Data$Subtype <- factor(Data$Subtype,
  levels = c("Usual", "Verrucous", "Papillary", "Warty", "Mixed"))

We finally searched the dataset for cases of superficial high-grade and deep low-grade tumors, using the following criteria:

  • Superficial High-Grade Tumors: Grade 3 tumors invading lamina propria or superficial corpus spongiosum (tumor thickness equals to or less than 5 mm).
  • Deep Low-Grade Tumors: Grade 1 tumors invading deep corpus spongiosum (tumor thickness equals to or greater than 10 mm) or corpus cavernosum, including tunica albuginea.

We then excluded the missing cases and dropped unused levels.

# Superficial High-Grade Tumors
Data$Paradoxical[Data$Grade == "Grade 3" &
  Data$Level == "Lamina propria"] <- "Superficial High-Grade"
Data$Paradoxical[Data$Grade == "Grade 3" &
  Data$Level == "Corpus spongiosum" &
  Data$Thickness <= 5] <- "Superficial High-Grade"
# Deep Low-Grade Tumors
Data$Paradoxical[Data$Grade == "Grade 1" &
  Data$Level == "Corpus cavernosum"] <- "Deep Low-Grade"
Data$Paradoxical[Data$Grade == "Grade 1" &
  Data$Level == "Corpus spongiosum" &
  Data$Thickness >= 10] <- "Deep Low-Grade"
# Converting to Factor
Data$Paradoxical <- factor(Data$Paradoxical,
  levels = c("Superficial High-Grade", "Deep Low-Grade"))
# Excluding missing cases
Data <- Data[complete.cases(Data$Paradoxical), ]
# Dropping unused levels
Data <- droplevels(Data)

Data analysis was carried out on this dataset, using the simpleR package.

library(simpleR)

Methodology

Data analysis is divided in 4 sections, as it follows:

Descriptive Statistics. All the variables included in the dataset were analyzed using bar plots, histograms, box plots, and one-way tables. Factor variables were described using absolute and relative percentages. Numeric variables were described using mean, standard deviation, median, interquartile range, minimum and maximum value.

Inferential Statistics: Statistical tests (Fisher’s exact test for categorical variables, Kruskal-Wallis test for numerical variables) were carried out to compare the clinicopathologic and outcome features between superficial high-grade and deep low-grade tumors. A 2-tailed P value was reported in all instances. Reported statistics included absolute and relative percentages for categorical variables; and mean, standard deviation, median, interquartile range, minimum and maximum value for numeric variables, by tumor type (superficial high-grade vs. deep low-grade).

Survival Analysis. For all variables in the dataset survival curves were built for final nodal status and cancer-related death using the Kaplan-Meier method. Survival curves were compared using the Mantel-Cox (log-rank) test. Numerical variables were splitted in 2 levels using the median as the cutoff point. A 2-tailed P value was reported in all instances.

Logistic Regression Analysis. Odds ratios (OR) with 95% confidence intervals (CI) and their associated P values were estimated for superficial high-grade vs. deep low-grade tumors, considering inguinal lymph node metastasis, tumor relapse, final nodal status, and cancer-related death.

Cox’s Proportional Hazards Regression Analysis. Hazard ratios (OR) with 95% confidence intervals (CI) and their associated P values were estimated for superficial high-grade vs. deep low-grade tumors, considering inguinal lymph node metastasis, tumor relapse, final nodal status, and cancer-related death.

library(knitr)
opts_chunk$set(fig.width = 8, fig.height = 6, message = FALSE, warning = FALSE)

Descriptive Statistics

Here it follows the description of all the variables included in the analyzed dataset.

Surgical Procedure for Primary Treatment

Var <- Data$Procedure
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
Partial penectomy 25 61
Total penectomy 16 39

Number of missing cases: 0 cases.


Histologic Subtype

Var <- Data$Subtype
categorical.plot(Var, align = "h", left =8)

descriptive.categorical(Var)
No. Cases %
Usual 24 58.5
Verrucous 7 17.1
Papillary 3 7.3
Warty 3 7.3
Mixed 4 9.8

Number of missing cases: 0 cases.


Anatomical Location

Var <- Data$Anatomical
categorical.plot(Var, align = "h", left = 14)

descriptive.categorical(Var)
No. Cases %
Glans alone 26 63
Glans + Coronal sulcus 6 15
Glans + Coronal sulcus + Foreskin 9 22

Number of missing cases: 0 cases.


Anatomical Level of Maximum Tumor Invasion

Var <- Data$Level
categorical.plot(Var, align = "h", left = 9)

descriptive.categorical(Var)
No. Cases %
Corpus cavernosum 27 65.9
Corpus spongiosum 12 29.3
Lamina propria 2 4.9

Number of missing cases: 0 cases.


Tumor Size, cm

Var <- Data$Size
numerical.plot(Var, label = "Tumor Size, cm")

descriptive.numerical(Var)
Statistics Values
Mean 4.8
Standard Deviation 2
Median 5
Interquartile Range 2.9
Mininum 1.3
Maximum 9

Number of missing cases: 15 cases.


Patient’s Age, years

Var <- Data$Age
numerical.plot(Var, label = "Patient's Age, years")

descriptive.numerical(Var)
Statistics Values
Mean 56.2
Standard Deviation 12.3
Median 55
Interquartile Range 19
Mininum 33
Maximum 85

Number of missing cases: 0 cases.


Bilateral Inguinal Lymphadenectomy

Var <- Data$Lymphadenectomy
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
No 23 56
Yes 18 44

Number of missing cases: 0 cases.


Inguinal Lymph Node Metastasis

Var <- Data$Mets
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
No 36 88
Yes 5 12

Number of missing cases: 0 cases.


Tumor Invasion of Penile Urethra

Var <- Data$Urethra
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
No 19 56
Yes 15 44

Number of missing cases: 7 cases.


Vascular Invasion

Var <- Data$Vascular
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
No 36 90
Yes 4 10

Number of missing cases: 1 cases.


Perineural Invasion

Var <- Data$Perineural
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
No 34 85
Yes 6 15

Number of missing cases: 1 cases.


Pathological T Stage

Var <- Data$pT
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
T1 1 2.9
T2 18 52.9
T3 15 44.1

Number of missing cases: 7 cases.


Tumor Relapse (Local, Regional or Systemic)

Var <- Data$Relapse
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
No 38 95
Yes 2 5

Number of missing cases: 1 cases.


Follow-up Length, months

Var <- Data$FollowUp
numerical.plot(Var, label = "Follow-Up, Months")

descriptive.numerical(Var)
Statistics Values
Mean 152.5
Standard Deviation 101
Median 157.3
Interquartile Range 143.6
Mininum 0.8
Maximum 386.7

Number of missing cases: 0 cases.


Patient’s Outcome

Var <- Data$Outcome
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
Alive with disease 3 7.3
Alive without disease 23 56.1
Died of cancer 1 2.4
Died of other causes 14 34.1

Number of missing cases: 0 cases.


Clinical N Stage

Var <- Data$cN
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
cN0 20 50
cN1 7 18
cN2 13 32

Number of missing cases: 1 cases.


Final Nodal Status

Var <- Data$Final_Nodal
categorical.plot(Var)

descriptive.categorical(Var)
No. Cases %
Negative 33 80
Positive 8 20

Number of missing cases: 0 cases.


Inferential Statistics

Var2 <- Data$Paradoxical

Tumor Type and Surgical Procedure

Var1 <- Data$Procedure
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
Partial penectomy 10 83.3 15 51.7
Total penectomy 2 16.7 14 48.3

Tumor Type and Anatomical Location

Var1 <- Data$Anatomical
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
Glans alone 7 58.3 19 65.5
Glans + Coronal sulcus 2 16.7 4 13.8
Glans + Coronal sulcus + Foreskin 3 25.0 6 20.7

Tumor Type and Anatomical Level

Var1 <- Data$Level
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
Corpus cavernosum 0 0.0 27 93.1
Corpus spongiosum 10 83.3 2 6.9
Lamina propria 2 16.7 0 0.0

Tumor Type and Tumor Size

Var1 <- Data$Size
numerical.group.plot(Var1, Var2)

descriptive.numerical.group(Var1, Var2)
Superficial High-Grade Deep Low-Grade
Mean 4.8 4.8
Standard Deviation 3.0 1.7
Median 4.5 5.0
Interquartile Range 4.1 2.1
Minimum 1.3 2.0
Maximum 9.0 9.0

Tumor Type and Patient’s Age

Var1 <- Data$Age
numerical.group.plot(Var1, Var2)

descriptive.numerical.group(Var1, Var2)
Superficial High-Grade Deep Low-Grade
Mean 50.8 58.4
Standard Deviation 10.5 12.4
Median 52.5 56.0
Interquartile Range 12.5 19.0
Minimum 33.0 37.0
Maximum 69.0 85.0

Tumor Type and Urethral Invasion

Var1 <- Data$Urethra
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
No 6 66.7 13 52
Yes 3 33.3 12 48

Tumor Type and Vascular Invasion

Var1 <- Data$Vascular
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
No 10 83.3 26 92.9
Yes 2 16.7 2 7.1

Tumor Type and Perineural Invasion

Var1 <- Data$Perineural
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
No 10 83.3 24 85.7
Yes 2 16.7 4 14.3

Tumor Type and cN Stage

Var1 <- Data$cN
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
cN0 8 66.7 12 42.9
cN1 0 0.0 7 25.0
cN2 4 33.3 9 32.1

Tumor Type and pT Stage

Var1 <- Data$pT
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
T1 1 11.1 0 0
T2 5 55.6 13 52
T3 3 33.3 12 48

Tumor Type and Inguinal LN Metastasis

Var1 <- Data$Mets
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
No 8 66.7 28 96.6
Yes 4 33.3 1 3.4

Tumor Type and Tumor Relapse

Var1 <- Data$Relapse
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
No 11 91.7 27 96.4
Yes 1 8.3 1 3.6

Tumor Type and Final Nodal Status

Var1 <- Data$Final_Nodal
categorical.group.plot(Var1, Var2)

descriptive.categorical.group(Var1, Var2)
Superficial High-Grade % Deep Low-Grade %
Negative 8 66.7 25 86.2
Positive 4 33.3 4 13.8

Survival Analysis: Final Nodal Status

source("RiskTable.R")
x.lab <- "Follow-Up, Months"
y.lab <- "Survival Function"
# Defining outcome variable
Status <- Data$Final_Nodal
# Creating dicotomic variables from numerical variables for plotting
Size_Median <- factor(ifelse(Data$Size > median(Data$Size, na.rm = TRUE),
  c("Above Median Size"), c("Below Median Size")))
Age_Median <- factor(ifelse(Data$Age > median(Data$Age, na.rm = TRUE),
  c("Above Median Age"), c("Below Median Age")))
# By type of tumor
with(Data, survival.plot(Paradoxical, FollowUp, Status,
  xlab = x.lab, ylab = y.lab,
  title = "Final Nodal Status by Tumor Type"))

with(Data, risk.table(Paradoxical, FollowUp, Status))
Individuals at risk
0 50 100 150 200 250 300
Superficial High-Grade 12 11 10 9 6 2 2
Deep Low-Grade 29 20 16 12 8 4 2
# By surgical procedure
with(Data, survival.plot(Procedure, FollowUp, Status,
  xlab = x.lab, ylab = y.lab,
  title = "Final Nodal Status by Surgical Procedure"))

with(Data, risk.table(Procedure, FollowUp, Status))
Individuals at risk
0 50 100 150 200 250 300
Partial penectomy 25 19 17 14 8 4 3
Total penectomy 16 12 9 7 6 2 1
# By anatomical location
with(Data, survival.plot(Anatomical, FollowUp, Status,
  xlab = x.lab, ylab = y.lab, ylim = c(0, 1.09),
  title = "Final Nodal Status by Anatomical Location"))

with(Data, risk.table(Anatomical, FollowUp, Status))
Individuals at risk
0 50 100 150 200 250 300
Glans alone 26 19 14 13 10 3 1
Glans + Coronal sulcus 6 5 5 3 2 2 2
Glans + Coronal sulcus + Foreskin 9 7 7 5 2 1 1
# By anatomical level
with(Data, survival.plot(Level, FollowUp, Status,
  xlab = x.lab, ylab = y.lab, ylim = c(0, 1.09),
  title = "Final Nodal Status by Anatomical Level"))

with(Data, risk.table(Level, FollowUp, Status))
Individuals at risk
0 50 100 150 200
Corpus cavernosum 27 19 15 12 8
Corpus spongiosum 12 10 10 8 5
Lamina propria 2 2 1 1 1
# By median tumor size
with(Data, survival.plot(Size_Median, FollowUp, Status,
  xlab = x.lab, ylab = y.lab,
  title = "Final Nodal Status by Median Tumor Size"))

with(Data, risk.table(Size_Median, FollowUp, Status))
Individuals at risk
0 50 100 150 200
Above Median Size 9 7 6 5 3
Below Median Size 17 11 7 4 2
# By median patient's age
with(Data, survival.plot(Age_Median, FollowUp, Status,
  xlab = x.lab, ylab = y.lab,
  title = "Final Nodal Status by Median Patient's Age"))

with(Data, risk.table(Age_Median, FollowUp, Status))
Individuals at risk
0 50 100 150 200
Above Median Age 19 13 10 7 5
Below Median Age 22 18 16 14 9
# By urethral invasion
with(Data, survival.plot(Urethra, FollowUp, Status,
  xlab = x.lab, ylab = y.lab,
  title = "Final Nodal Status by Urethral Invasion"))

with(Data, risk.table(Urethra, FollowUp, Status))
Individuals at risk
0 50 100 150 200 250 300
No 19 14 12 10 6 2 1
Yes 15 11 9 7 4 3 3
# By vascular invasion
with(Data, survival.plot(Vascular, FollowUp, Status,
  xlab = x.lab, ylab = y.lab,
  title = "Final Nodal Status by Vascular Invasion"))

with(Data, risk.table(Vascular, FollowUp, Status))
Individuals at risk
0 50 100 150 200
No 36 27 22 17 12
Yes 4 3 3 3 2
# By perineural invasion
with(Data, survival.plot(Perineural, FollowUp, Status,
  xlab = x.lab, ylab = y.lab,
  title = "Final Nodal Status by Perineural Invasion"))

with(Data, risk.table(Perineural, FollowUp, Status))
Individuals at risk
0 50 100 150 200 250
No 34 26 21 16 11 5
Yes 6 4 4 4 3 1
# By pathological T stage
with(Data, survival.plot(pT, FollowUp, Status,
  xlab = x.lab, ylab = y.lab,
  title = "Final Nodal Status by Pathological T Stage"))

with(Data, risk.table(pT, FollowUp, Status))
Individuals at risk
0 50
T1 1 1
T2 18 13
T3 15 11
# By clinical N stage
with(Data, survival.plot(cN, FollowUp, Status,
  xlab = x.lab, ylab = y.lab,
  title = "Final Nodal Status by Clinical N Stage"))

with(Data, risk.table(cN, FollowUp, Status))
Individuals at risk
0 50 100
cN0 20 16 13
cN1 7 3 2
cN2 13 11 10

Logistic Regression Analysis

# Creating variables for GLM analysis
Paradoxical_Inv <- factor(Data$Paradoxical,
  levels = c("Deep Low-Grade", "Superficial High-Grade"))
Data$Multicompartment <- factor(ifelse(Data$Anatomical == "Glans alone",
  c("No"), c("Yes")))
Data$CC <- factor(ifelse(Data$Level == "Corpus cavernosum",
  c("Yes"), c("No")))
Data$High_pT <- factor(ifelse(Data$pT == "T3",
  c("Yes"), c("No")))
Data$cN_Positive <- factor(ifelse(Data$cN == "cN0",
  c("No"), c("Yes")))
# Creating list of variables and labels
Predictors <- with(Data, list(
  "Superficial high-grade vs. deep low-grade" = Paradoxical_Inv,
  "Primary treatment" = Procedure,
  "Age > median" = Age_Median,
  "Multicompartment tumor" = Multicompartment,
  "Invasion of corpus cavernosum" = CC,
  "Tumor size > median" = Size_Median,
  "Invasion of penile urethra" = Urethra,
  "Vascular invasion" = Vascular,
  "Perineural invasion" = Perineural,
  "High pT (>pT3)" = High_pT,
  "Positive clinical nodes" = cN_Positive
  ))
Varlabels <- names(Predictors)

Inguinal Lymph Node Metastasis

Outcome <- Data$Mets
logistic.table(Outcome, Predictors, Varlabels)
Variables OR Lower 95% CI Higher 95% CI P value
Superficial high-grade vs. deep low-grade 14.00 1.77 295.70 0.026
Primary treatment 1.3e-08 NA 2.1e+117 0.99
Age > median 0.53 0.064 3.59 0.52
Multicompartment tumor 1.18 0.14 8.03 0.87
Invasion of corpus cavernosum 0.096 0.0046 0.75 0.047
Tumor size > median 1.07 0.088 25.05 0.96
Invasion of penile urethra 0.27 0.013 2.09 0.26
Vascular invasion 11.00 1.03 127.12 0.04
Perineural invasion 5.17 0.56 42.50 0.12
High pT (>pT3) 0.27 0.013 2.09 0.26
Positive clinical nodes 1.59 0.24 13.20 0.63

Tumor Relapse

Outcome <- Data$Relapse
logistic.table(Outcome, Predictors, Varlabels)
Variables OR Lower 95% CI Higher 95% CI P value
Superficial high-grade vs. deep low-grade 2.45 0.092 65.89 0.54
Primary treatment 1.71 0.064 45.68 0.71
Age > median 0.81 0.03 21.49 0.88
Multicompartment tumor 1.4e-08 NA Inf 1
Invasion of corpus cavernosum 0.52 0.019 13.87 0.65
Tumor size > median 0.50 0.018 13.76 0.64
Invasion of penile urethra 1.21 0.045 32.60 0.89
Vascular invasion 1.4e-07 NA 2.4e+227 1
Perineural invasion 6.40 0.23 180.98 0.21
High pT (>pT3) 1.21 0.045 32.60 0.89
Positive clinical nodes 9.5e+07 1.8e-282 NA 1

Final Nodal Status

Outcome <- Data$Final_Nodal
logistic.table(Outcome, Predictors, Varlabels)
Variables OR Lower 95% CI Higher 95% CI P value
Superficial high-grade vs. deep low-grade 3.12 0.61 16.27 0.16
Primary treatment 0.45 0.06 2.31 0.37
Age > median 0.44 0.08 2.11 0.31
Multicompartment tumor 1.05 0.19 5.08 0.95
Invasion of corpus cavernosum 0.43 0.086 2.17 0.3
Tumor size > median 0.75 0.10 6.70 0.78
Invasion of penile urethra 0.70 0.12 3.48 0.67
Vascular invasion 18.60 1.96 421.69 0.019
Perineural invasion 5.80 0.87 40.60 0.064
High pT (>pT3) 0.70 0.12 3.48 0.67
Positive clinical nodes 1.89 0.40 10.50 0.43

Cox’s Proportional Hazards Regression Analysis

Inguinal Lymph Node Metastasis

Outcome <- Data$Mets
FU <- Data$FollowUp
cox.table(Outcome, FU, Predictors, Varlabels)
Variables HR Lower 95% CI Higher 95% CI P value
Superficial high-grade vs. deep low-grade 6.13 0.68 55.02 0.065
Primary treatment 2.7e-09 0.00 Inf 0.036
Age > median 0.37 0.061 2.21 0.27
Multicompartment tumor 1.26 0.21 7.65 0.8
Invasion of corpus cavernosum 0.18 0.02 1.60 0.079
Tumor size > median 1.68 0.15 18.85 0.67
Invasion of penile urethra 0.37 0.042 3.34 0.34
Vascular invasion 4.57 0.75 27.71 0.13
Perineural invasion 2.92 0.48 17.68 0.27
High pT (>pT3) 0.37 0.042 3.34 0.34
Positive clinical nodes 2.26 0.37 13.82 0.37

Tumor Relapse

Outcome <- Data$Relapse
cox.table(Outcome, FU, Predictors, Varlabels)
Variables HR Lower 95% CI Higher 95% CI P value
Superficial high-grade vs. deep low-grade 2.04 0.13 32.62 0.62
Primary treatment 1.61 0.10 25.78 0.74
Age > median 0.74 0.046 11.81 0.83
Multicompartment tumor 2.6e-09 0.00 Inf 0.17
Invasion of corpus cavernosum 0.62 0.039 9.99 0.74
Tumor size > median 0.57 0.035 9.06 0.69
Invasion of penile urethra 1.37 0.085 22.01 0.82
Vascular invasion 1.3e-08 0.00 Inf 0.55
Perineural invasion 6.09 0.38 97.49 0.23
High pT (>pT3) 1.37 0.085 22.01 0.82
Positive clinical nodes 1.7e+09 0.00 Inf 0.092

Final Nodal Status

Outcome <- Data$Final_Nodal
cox.table(Outcome, FU, Predictors, Varlabels)
Variables HR Lower 95% CI Higher 95% CI P value
Superficial high-grade vs. deep low-grade 1.77 0.44 7.14 0.43
Primary treatment 0.57 0.12 2.84 0.48
Age > median 0.38 0.089 1.59 0.17
Multicompartment tumor 1.10 0.26 4.63 0.9
Invasion of corpus cavernosum 0.65 0.16 2.60 0.54
Tumor size > median 1.06 0.17 6.47 0.95
Invasion of penile urethra 0.83 0.20 3.46 0.79
Vascular invasion 4.63 1.09 19.62 0.058
Perineural invasion 2.91 0.69 12.28 0.17
High pT (>pT3) 0.83 0.20 3.46 0.79
Positive clinical nodes 2.12 0.50 9.06 0.3